﻿$(function () {
	
	$('#manager').datagrid({
		url : 'http://gyp.meidongya.cn/role/all',
		fit : true,
		fitColumns : true,
		striped : true,
		rownumbers : true,
		border : false,
		nowrap:false,
		pagination : true,
		pageSize : 25,
		pageNumber : 1,
		pageList : [25,50,75],
		singleSelect:true,
		checkOnSelect:true,
		toolbar : '#manager_tool',
		columns : [[
			{
				field : 'id',
				title : '编号',
				width : 5,
			},
			{
				field : 'role_name',
				title : '角色名称',
				width : 10,
			},
			{
				field : 'permission_name',
				title : '权限',
				width : 100,
			},
			{
				field : 'status',
				title : '状态',
				width : 5,
				formatter: function(value,row,index){
					if(value==1){
						return '开启';
					} else{
						return '关闭';
					}
				},
			},
		]],
	});
	
	$('#manager_add').dialog({
		width : 350,
		title : '新增角色',
		modal : true,
		closed : true,
		iconCls : 'icon-user_add',
		buttons : [{
			text : '提交',
			iconCls : 'icon-accept',
			handler : function () {
				if ($('#manager_add').form('validate')) {
					$.ajax({
						url : 'http://gyp.meidongya.cn/role/add',
						type : 'POST',
						data : {
							role : $('input[name="role"]').val(),
							auth : $('#auth').combotree('getText'),
							status : $('input[name="status"]').val(),
						},
						beforeSend : function () {
							$.messager.progress({
								text : '正在新增中...',
							});
						},
						success : function (data, response, status) {
							$.messager.progress('close');
							
							if (data > 0) {
								$.messager.show({
									title : '提示',
									msg : '新增角色成功',
								});
								$('#manager_add').dialog('close').form('reset');
								$('#manager').datagrid('reload');
							} else {
								$.messager.alert('新增失败！', '未知错误导致失败，请重试！', 'warning');
							}
						}
					});
				}
			},
		},{
			text : '取消',
			iconCls : 'icon-redo',
			handler : function () {
				$('#manager_add').dialog('close').form('reset');
			},
		}],
	});
	
	$('#manager_edit').dialog({
		width : 350,
		title : '角色修改',
		modal : true,
		closed : true,
		iconCls : 'icon-user_edit',
		buttons : [{
			text : '提交',
			iconCls : 'icon-accept',
			handler : function () {
				if ($('#manager_edit').form('validate')) {
					$.ajax({
						url : 'http://gyp.meidongya.cn/role/edit',
						type : 'post',
						data : {
							id:$('input[name="id"]').val(), 
							role : $('input[name="role_edit"]').val(),
							auth : $('#auth_edit').combotree('getText'),
							status : $('input[name="status_edit"]').val(),
						},
						beforeSend : function () {
							$.messager.progress({
								text : '正在修改中...',
							});
						},
						success : function (data, response, status) {
							$.messager.progress('close');
							//console.log(data);
							if (data > 0) {
								$.messager.show({
									title : '提示',
									msg : '修改角色成功',
								});
								$('#manager_edit').dialog('close').form('reset');
								$('#manager').datagrid('reload');
							} else {
								$.messager.alert('修改失败！', '未知错误或没有任何修改，请重试！', 'warning');
							}
						}
					});
				}
			},
		},{
			text : '取消',
			iconCls : 'icon-redo',
			handler : function () {
				$('#manager_edit').dialog('close').form('reset');
			},
		}],
	});

	$.extend($.fn.validatebox.defaults.rules, {
	    selectValueRequired: {
	        validator: function(value,param){
	            return $(param[0]).find("option:contains('"+value+"')").val() != '';
	        },
	    message: '状态还未选择'
     	}
	});
	
	$('input[name="role"],input[name="role_edit"]').validatebox({
		required : true,
		missingMessage : '请输入角色名称',
	});

	$('#auth').combotree({
		url : 'http://gyp.meidongya.cn/role/get_perm',
		required : true,
		lines : true,
		multiple : true,
		checkbox : true,
		onlyLeafCheck : true,
		onLoadSuccess : function (node, data) {
			var _this = this;
			if (data) {
				$(data).each(function (index, value) {
					//console.log(value)
					if (this.state == 'closed') {
						$(_this).tree('expandAll');
					}
				});
			}
		},
	});

	
	manager_tool = {
		reload : function () {
			$('#manager').datagrid('reload');
		},
		redo : function () {
			$('#manager').datagrid('unselectAll');
		},
		add : function () {
			$('#manager_add').dialog('open');
			$('input[name="province"]').focus();
		},
		remove : function () {
			var rows = $('#manager').datagrid('getSelections');
			if (rows.length > 0) {
				$.messager.confirm('确定操作', '您正在要删除所选的记录吗？', function (flag) {
					if (flag) {
						var ids = [];
						for (var i = 0; i < rows.length; i ++) {
							ids.push(rows[i].id);
						}
						//console.log(ids.join(','));
						$.ajax({
							type : 'POST',
							url : 'http://gyp.meidongya.cn/role/delete',
							data : {
								id : ids.join(','),
							},
							beforeSend : function () {
								$('#manager').datagrid('loading');
							},
							success : function (data) {
								if (data) {
									$('#manager').datagrid('loaded');
									$('#manager').datagrid('load');
									$('#manager').datagrid('unselectAll');
									$.messager.show({
										title : '提示',
										msg : '删除成功！',
									});
								}
							},
						});
					}
				});
			} else {
				$.messager.alert('提示', '请选择要删除的记录！', 'info');
			}
		},
		edit : function () {
			var rows = $('#manager').datagrid('getSelections');
			//console.log(rows);
			if (rows.length > 1) {
				$.messager.alert('警告操作！', '编辑记录只能选定一条数据！', 'warning');
			} else if (rows.length == 1) {
				$.ajax({
					url : 'http://gyp.meidongya.cn/role/edit_select',
					type : 'post',
					data : {
						id : rows[0].id,
					},
					beforeSend : function () {
						$.messager.progress({
							text : '正在获取中...',
						});
					},
					success : function (data, response, status) {
						$.messager.progress('close');
						if (data) {
							var obj = $.parseJSON(data);
							var auth = obj[0].permission_name.split(',');
							//console.log(auth)
							$('#manager_edit').form('load', {
								id : obj[0].id,
								role_edit : obj[0].role_name,
								//auth_edit : obj[0].permission_name,
								status_edit : obj[0].status,
							}).dialog('open');

							//分配权限
							$('#auth_edit').combotree({
								url : 'http://gyp.meidongya.cn/role/get_perm',
								required : true,
								lines : true,
								multiple : true,
								checkbox : true,
								onlyLeafCheck : true,
								onLoadSuccess:function(node,data){  
							        var t = $("#auth_edit").combotree('tree');//获取tree  
									console.log(data)
							        for (var i=0;i<data.length ;i++ ){ 
							         	if ($.inArray(data[i].text, auth) != -1) {
							            node= t.tree("find",data[i].id);  		
							         	//console.log(node) 
							            t.tree('check',node.target);//展开所有节点  
										}
							               
							        }  
							    }
							});
							
						} else {
							$.messager.alert('获取失败！', '未知错误导致失败，请重试！', 'warning');
						}
					}
				});
			} else if (rows.length == 0) {
				$.messager.alert('警告操作！', '编辑记录至少选定一条数据！', 'warning');
			}
		},
	};
	
	
	
});